var eventos = [];

converterApostasEmEventos = function(apostas) {
    var eventos = [];
    for (i in apostas) eventos[i] = apostas[i].evento;

    for (i=0;i<eventos.length-1;i++) {
        for (j=1;j<eventos.length-1;j++) {
            if (eventos[i].codigo === eventos[j].codigo) eventos.pop(j);
        }
    }

    for (i in eventos) {
        eventos[i].apostas = [];
        for (j in apostas) {
            if (eventos[i].codigo === apostas[j].evento.codigo) {
                eventos[i].apostas.push({ 
                    id: apostas[j].id,
                    apostador: apostas[j].apostador,
                    dataHoraAposta: apostas[j].dataHoraAposta,
                    indicadorResultadoApostado: apostas[j].indicadorResultadoApostado,
                    valorAposta: apostas[j].valorAposta
                });
            }
        }
    }
    return eventos;
}

inserir = function(eventos) {
    for (i in eventos) {
        evento = eventos[i];
        resultados1 = [];
        resultados2 = [];
        for (j in eventos[i].apostas) {
            apostador = { 
                nomeApostador: eventos[i].apostas[j].apostador.nome, 
                valorAposta: eventos[i].apostas[j].valorAposta
            }
            if (eventos[i].apostas[j].indicadorResultadoApostado === eventos[i].resultado1Possivel) {
                resultados1.push(apostador);
            } else if (eventos[i].apostas[j].indicadorResultadoApostado === eventos[i].resultado2Possivel) {
                resultados2.push(apostador);
            }
        }
        trEvento = $("<tr>", { id: evento.codigo });
        tdEventoDescricao = $("<td>" + evento.descricao + "</td>");
        tdEventoResultados = $("<td>");
        tableEventoResultados = $("<table border=1>");
        
        trEventoResultado1 = $("<tr>");
        tdEventoResultado1 = $("<td>" + evento.resultado1Possivel + "</td>");
        tdHtmlResult1Apostadores = $("<td>");
        theadTableInnerResult1 = $("<table border=1><thead><th>Apostador</th><th>Valor</th></thead><tbody></tbody></table>");
        for (j in resultados1) {
            theadTableInnerResult1.append($("<tr><td>"+resultados1[j].nomeApostador+"</td><td>"+resultados1[j].valorAposta+"</td></tr>"));
        }
        tdHtmlResult1Apostadores.append(theadTableInnerResult1);
        trEventoResultado1.append(tdEventoResultado1);
        trEventoResultado1.append(tdHtmlResult1Apostadores);
        
        trEventoResultado2 = $("<tr>");
        tdEventoResultado2 = $("<td>" + evento.resultado2Possivel + "</td>");
        tdHtmlResult2Apostadores = $("<td>");
        theadTableInnerResult2 = $("<table border=1><thead><th>Apostador</th><th>Valor</th></thead><tbody></tbody></table>");
        for (j in resultados2) {
            theadTableInnerResult2.append($("<tr><td>"+resultados2[j].nomeApostador+"</td><td>"+resultados2[j].valorAposta+"</td></tr>"));
        }
        tdHtmlResult2Apostadores.append(theadTableInnerResult2);
        trEventoResultado2.append(tdEventoResultado2);
        trEventoResultado2.append(tdHtmlResult2Apostadores);
        
        tableEventoResultados.append(trEventoResultado1);
        tableEventoResultados.append(trEventoResultado2);
        
        tdEventoResultados.append(tableEventoResultados);
        trEvento.append(tdEventoDescricao);
        trEvento.append(tdEventoResultados);
        $("#id-tbody").append(trEvento);
    }
}

$(document).ready(function() {
    $.ajax({
        url: "betabit/eventoservice/listar",
        success: function(data) {
            eventos = converterApostasEmEventos(data);
            //for(i = 0; i < data.length; i++) inserir(data[i]);
            console.log(data);
            console.log(eventos);
            try {
                inserir(eventos);
            } catch(err) {
                console.error(err)
            }
        }, 
        error: function(errorThrown) { console.log(errorThrown); }
    });
});